--[[

Luci statistics - data definition database (obsolete)
(c) 2008 Freifunk Leipzig / Jo-Philipp Wich <xm@leipzig.freifunk.net>

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

$Id: definitions.lua 3540 2008-10-08 15:59:10Z jow $

]]--

module("luci.statistics.rrdtool.definitions", package.seeall)

require("luci.util")
require("luci.fs")


Instance = luci.util.class()

function Instance.__init__( self, ... )

	-- used color palette
	self.palette = {
		Canvas		= "FFFFFF",
		FullRed		= "FF0000",
		FullGreen	= "00E000",
		FullBlue	= "0000FF",
		FullYellow	= "F0A000",
		FullCyan	= "00A0FF",
		FullMagenta	= "A000FF",
		HalfRed		= "F7B7B7",
		HalfGreen	= "B7EFB7",
		HalfBlue	= "B7B7F7",
		HalfYellow	= "F3DFB7",
		HalfCyan	= "B7DFF7",
		HalfMagenta	= "DFB7F7",
		HalfBlueGreen	= "89B3C9"
	}

	-- plotting arguments for each defined datasource
	self.definitions = {
		apache_bytes = {
			"DEF:min_raw={file}:count:MIN",
			"DEF:avg_raw={file}:count:AVERAGE",
			"DEF:max_raw={file}:count:MAX",
			"CDEF:min=min_raw,8,*",
			"CDEF:avg=avg_raw,8,*",
			"CDEF:max=max_raw,8,*",
			"CDEF:mytime=avg_raw,TIME,TIME,IF",
			"CDEF:sample_len_raw=mytime,PREV(mytime),-",
			"CDEF:sample_len=sample_len_raw,UN,0,sample_len_raw,IF",
			"CDEF:avg_sample=avg_raw,UN,0,avg_raw,IF,sample_len,*",
			"CDEF:avg_sum=PREV,UN,0,PREV,IF,avg_sample,+",
			"AREA:avg#" .. self.palette.HalfBlue,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Bit/s",
			"GPRINT:min:MIN:%5.1lf%s Min,",
			"GPRINT:avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:max:MAX:%5.1lf%s Max,",
			"GPRINT:avg:LAST:%5.1lf%s Last\\l",
			"GPRINT:avg_sum:LAST:(ca. %5.1lf%sB Total)"
		},

		apache_requests = {
			"DEF:min={file}:count:MIN",
			"DEF:avg={file}:count:AVERAGE",
			"DEF:max={file}:count:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Requests/s",
			"GPRINT:min:MIN:%6.2lf Min,",
			"GPRINT:avg:AVERAGE:%6.2lf Avg,",
			"GPRINT:max:MAX:%6.2lf Max,",
			"GPRINT:avg:LAST:%6.2lf Last\\l"
		},

		apache_scoreboard = {
			"DEF:min={file}:count:MIN",
			"DEF:avg={file}:count:AVERAGE",
			"DEF:max={file}:count:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Processes",
			"GPRINT:min:MIN:%6.2lf Min,",
			"GPRINT:avg:AVERAGE:%6.2lf Avg,",
			"GPRINT:max:MAX:%6.2lf Max,",
			"GPRINT:avg:LAST:%6.2lf Last\\l"
		},

		bitrate = {
			"-v", "Bits/s",
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Bits/s",
			"GPRINT:min:MIN:%5.1lf%s Min,",
			"GPRINT:avg:AVERAGE:%5.1lf%s Average,",
			"GPRINT:max:MAX:%5.1lf%s Max,",
			"GPRINT:avg:LAST:%5.1lf%s Last\\l"
		},

		charge = {
			"-v", "Ah",
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Charge",
			"GPRINT:min:MIN:%5.1lf%sAh Min,",
			"GPRINT:avg:AVERAGE:%5.1lf%sAh Avg,",
			"GPRINT:max:MAX:%5.1lf%sAh Max,",
			"GPRINT:avg:LAST:%5.1lf%sAh Last\\l"
		},

		current = {
			"-v", "Ampere",
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Current",
			"GPRINT:min:MIN:%5.1lf%sA Min,",
			"GPRINT:avg:AVERAGE:%5.1lf%sA Avg,",
			"GPRINT:max:MAX:%5.1lf%sA Max,",
			"GPRINT:avg:LAST:%5.1lf%sA Last\\l"
		},

		disk = {
			"DEF:rtime_avg={file}:rtime:AVERAGE",
			"DEF:rtime_min={file}:rtime:MIN",
			"DEF:rtime_max={file}:rtime:MAX",
			"DEF:wtime_avg={file}:wtime:AVERAGE",
			"DEF:wtime_min={file}:wtime:MIN",
			"DEF:wtime_max={file}:wtime:MAX",
			"CDEF:rtime_avg_ms=rtime_avg,1000,/",
			"CDEF:rtime_min_ms=rtime_min,1000,/",
			"CDEF:rtime_max_ms=rtime_max,1000,/",
			"CDEF:wtime_avg_ms=wtime_avg,1000,/",
			"CDEF:wtime_min_ms=wtime_min,1000,/",
			"CDEF:wtime_max_ms=wtime_max,1000,/",
			"CDEF:total_avg_ms=rtime_avg_ms,wtime_avg_ms,+",
			"CDEF:total_min_ms=rtime_min_ms,wtime_min_ms,+",
			"CDEF:total_max_ms=rtime_max_ms,wtime_max_ms,+",
			"AREA:total_max_ms#" .. self.palette.HalfRed,
			"AREA:total_min_ms#" .. self.palette.Canvas,
			"LINE1:wtime_avg_ms#" .. self.palette.FullGreen .. ":Write",
			"GPRINT:wtime_min_ms:MIN:%5.1lf%s Min,",
			"GPRINT:wtime_avg_ms:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:wtime_max_ms:MAX:%5.1lf%s Max,",
			"GPRINT:wtime_avg_ms:LAST:%5.1lf%s Last\n",
			"LINE1:rtime_avg_ms#" .. self.palette.FullBlue .. ":Read ",
			"GPRINT:rtime_min_ms:MIN:%5.1lf%s Min,",
			"GPRINT:rtime_avg_ms:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:rtime_max_ms:MAX:%5.1lf%s Max,",
			"GPRINT:rtime_avg_ms:LAST:%5.1lf%s Last\n",
			"LINE1:total_avg_ms#" .. self.palette.FullRed .. ":Total",
			"GPRINT:total_min_ms:MIN:%5.1lf%s Min,",
			"GPRINT:total_avg_ms:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:total_max_ms:MAX:%5.1lf%s Max,",
			"GPRINT:total_avg_ms:LAST:%5.1lf%s Last\\l"
		},

		disk_octets = {
			"-v", "Bytes/s",
			"DEF:out_min={file}:write:MIN",
			"DEF:out_avg={file}:write:AVERAGE",
			"DEF:out_max={file}:write:MAX",
			"DEF:inc_min={file}:read:MIN",
			"DEF:inc_avg={file}:read:AVERAGE",
			"DEF:inc_max={file}:read:MAX",
			"CDEF:overlap=out_avg,inc_avg,GT,inc_avg,out_avg,IF",
			"CDEF:mytime=out_avg,TIME,TIME,IF",
			"CDEF:sample_len_raw=mytime,PREV(mytime),-",
			"CDEF:sample_len=sample_len_raw,UN,0,sample_len_raw,IF",
			"CDEF:out_avg_sample=out_avg,UN,0,out_avg,IF,sample_len,*",
			"CDEF:out_avg_sum=PREV,UN,0,PREV,IF,out_avg_sample,+",
			"CDEF:inc_avg_sample=inc_avg,UN,0,inc_avg,IF,sample_len,*",
			"CDEF:inc_avg_sum=PREV,UN,0,PREV,IF,inc_avg_sample,+",
			"AREA:out_avg#" .. self.palette.HalfGreen,
			"AREA:inc_avg#" .. self.palette.HalfBlue,
			"AREA:overlap#" .. self.palette.HalfBlueGreen,
			"LINE1:out_avg#" .. self.palette.FullGreen .. ":Written",
			"GPRINT:out_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:out_max:MAX:%5.1lf%s Max,",
			"GPRINT:out_avg:LAST:%5.1lf%s Last\\l",
			"GPRINT:out_avg_sum:LAST:(ca. %5.1lf%sB Total)",
			"LINE1:inc_avg#" .. self.palette.FullBlue .. ":Read   ",
			"GPRINT:inc_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:inc_max:MAX:%5.1lf%s Max,",
			"GPRINT:inc_avg:LAST:%5.1lf%s Last\\l",
			"GPRINT:inc_avg_sum:LAST:(ca. %5.1lf%sB Total)"
		},

		disk_merged = {
			"-v", "Merged Ops/s",
			"DEF:out_min={file}:write:MIN",
			"DEF:out_avg={file}:write:AVERAGE",
			"DEF:out_max={file}:write:MAX",
			"DEF:inc_min={file}:read:MIN",
			"DEF:inc_avg={file}:read:AVERAGE",
			"DEF:inc_max={file}:read:MAX",
			"CDEF:overlap=out_avg,inc_avg,GT,inc_avg,out_avg,IF",
			"AREA:out_avg#" .. self.palette.HalfGreen,
			"AREA:inc_avg#" .. self.palette.HalfBlue,
			"AREA:overlap#" .. self.palette.HalfBlueGreen,
			"LINE1:out_avg#" .. self.palette.FullGreen .. ":Written",
			"GPRINT:out_avg:AVERAGE:%6.2lf Avg,",
			"GPRINT:out_max:MAX:%6.2lf Max,",
			"GPRINT:out_avg:LAST:%6.2lf Last\\l",
			"LINE1:inc_avg#" .. self.palette.FullBlue .. ":Read   ",
			"GPRINT:inc_avg:AVERAGE:%6.2lf Avg,",
			"GPRINT:inc_max:MAX:%6.2lf Max,",
			"GPRINT:inc_avg:LAST:%6.2lf Last\\l"
		},

		disk_ops = {
			"-v", "Ops/s",
			"DEF:out_min={file}:write:MIN",
			"DEF:out_avg={file}:write:AVERAGE",
			"DEF:out_max={file}:write:MAX",
			"DEF:inc_min={file}:read:MIN",
			"DEF:inc_avg={file}:read:AVERAGE",
			"DEF:inc_max={file}:read:MAX",
			"CDEF:overlap=out_avg,inc_avg,GT,inc_avg,out_avg,IF",
			"AREA:out_avg#" .. self.palette.HalfGreen,
			"AREA:inc_avg#" .. self.palette.HalfBlue,
			"AREA:overlap#" .. self.palette.HalfBlueGreen,
			"LINE1:out_avg#" .. self.palette.FullGreen .. ":Written",
			"GPRINT:out_avg:AVERAGE:%6.2lf Avg,",
			"GPRINT:out_max:MAX:%6.2lf Max,",
			"GPRINT:out_avg:LAST:%6.2lf Last\\l",
			"LINE1:inc_avg#" .. self.palette.FullBlue .. ":Read   ",
			"GPRINT:inc_avg:AVERAGE:%6.2lf Avg,",
			"GPRINT:inc_max:MAX:%6.2lf Max,",
			"GPRINT:inc_avg:LAST:%6.2lf Last\\l"
		},

		disk_time = {
			"-v", "Seconds/s",
			"DEF:out_min_raw={file}:write:MIN",
			"DEF:out_avg_raw={file}:write:AVERAGE",
			"DEF:out_max_raw={file}:write:MAX",
			"DEF:inc_min_raw={file}:read:MIN",
			"DEF:inc_avg_raw={file}:read:AVERAGE",
			"DEF:inc_max_raw={file}:read:MAX",
			"CDEF:out_min=out_min_raw,1000,/",
			"CDEF:out_avg=out_avg_raw,1000,/",
			"CDEF:out_max=out_max_raw,1000,/",
			"CDEF:inc_min=inc_min_raw,1000,/",
			"CDEF:inc_avg=inc_avg_raw,1000,/",
			"CDEF:inc_max=inc_max_raw,1000,/",
			"CDEF:overlap=out_avg,inc_avg,GT,inc_avg,out_avg,IF",
			"AREA:out_avg#" .. self.palette.HalfGreen,
			"AREA:inc_avg#" .. self.palette.HalfBlue,
			"AREA:overlap#" .. self.palette.HalfBlueGreen,
			"LINE1:out_avg#" .. self.palette.FullGreen .. ":Written",
			"GPRINT:out_avg:AVERAGE:%5.1lf%ss Avg,",
			"GPRINT:out_max:MAX:%5.1lf%ss Max,",
			"GPRINT:out_avg:LAST:%5.1lf%ss Last\\l",
			"LINE1:inc_avg#" .. self.palette.FullBlue .. ":Read   ",
			"GPRINT:inc_avg:AVERAGE:%5.1lf%ss Avg,",
			"GPRINT:inc_max:MAX:%5.1lf%ss Max,",
			"GPRINT:inc_avg:LAST:%5.1lf%ss Last\\l"
		},

		dns_octets = {
			"DEF:rsp_min_raw={file}:responses:MIN",
			"DEF:rsp_avg_raw={file}:responses:AVERAGE",
			"DEF:rsp_max_raw={file}:responses:MAX",
			"DEF:qry_min_raw={file}:queries:MIN",
			"DEF:qry_avg_raw={file}:queries:AVERAGE",
			"DEF:qry_max_raw={file}:queries:MAX",
			"CDEF:rsp_min=rsp_min_raw,8,*",
			"CDEF:rsp_avg=rsp_avg_raw,8,*",
			"CDEF:rsp_max=rsp_max_raw,8,*",
			"CDEF:qry_min=qry_min_raw,8,*",
			"CDEF:qry_avg=qry_avg_raw,8,*",
			"CDEF:qry_max=qry_max_raw,8,*",
			"CDEF:overlap=rsp_avg,qry_avg,GT,qry_avg,rsp_avg,IF",
			"CDEF:mytime=rsp_avg_raw,TIME,TIME,IF",
			"CDEF:sample_len_raw=mytime,PREV(mytime),-",
			"CDEF:sample_len=sample_len_raw,UN,0,sample_len_raw,IF",
			"CDEF:rsp_avg_sample=rsp_avg_raw,UN,0,rsp_avg_raw,IF,sample_len,*",
			"CDEF:rsp_avg_sum=PREV,UN,0,PREV,IF,rsp_avg_sample,+",
			"CDEF:qry_avg_sample=qry_avg_raw,UN,0,qry_avg_raw,IF,sample_len,*",
			"CDEF:qry_avg_sum=PREV,UN,0,PREV,IF,qry_avg_sample,+",
			"AREA:rsp_avg#" .. self.palette.HalfGreen,
			"AREA:qry_avg#" .. self.palette.HalfBlue,
			"AREA:overlap#" .. self.palette.HalfBlueGreen,
			"LINE1:rsp_avg#" .. self.palette.FullGreen .. ":Responses",
			"GPRINT:rsp_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:rsp_max:MAX:%5.1lf%s Max,",
			"GPRINT:rsp_avg:LAST:%5.1lf%s Last",
			"GPRINT:rsp_avg_sum:LAST:(ca. %5.1lf%sB Total)\\l",
			"LINE1:qry_avg#" .. self.palette.FullBlue .. ":Queries  ",
			"GPRINT:qry_min:MIN:%5.1lf %s Min,",
			"GPRINT:qry_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:qry_max:MAX:%5.1lf%s Max,",
			"GPRINT:qry_avg:LAST:%5.1lf%s Last",
			"GPRINT:qry_avg_sum:LAST:(ca. %5.1lf%sB Total)\\l"
		},

		dns_opcode = {
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Queries/s",
			"GPRINT:min:MIN:%9.3lf Min,",
			"GPRINT:avg:AVERAGE:%9.3lf Average,",
			"GPRINT:max:MAX:%9.3lf Max,",
			"GPRINT:avg:LAST:%9.3lf Last\\l"
		},

		email_count = {
			"-v", "Mails",
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfMagenta,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullMagenta .. ":Count ",
			"GPRINT:min:MIN:%4.1lf Min,",
			"GPRINT:avg:AVERAGE:%4.1lf Avg,",
			"GPRINT:max:MAX:%4.1lf Max,",
			"GPRINT:avg:LAST:%4.1lf Last\\l"
		},

		email_size = {
			"-v", "Bytes",
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfMagenta,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullMagenta .. ":Count ",
			"GPRINT:min:MIN:%4.1lf Min,",
			"GPRINT:avg:AVERAGE:%4.1lf Avg,",
			"GPRINT:max:MAX:%4.1lf Max,",
			"GPRINT:avg:LAST:%4.1lf Last\\l"
		},

		spam_score = {
			"-v", "Score",
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Score ",
			"GPRINT:min:MIN:%4.1lf Min,",
			"GPRINT:avg:AVERAGE:%4.1lf Avg,",
			"GPRINT:max:MAX:%4.1lf Max,",
			"GPRINT:avg:LAST:%4.1lf Last\\l"
		},

		spam_check = {
			"DEF:avg={file}:hits:AVERAGE",
			"DEF:min={file}:hits:MIN",
			"DEF:max={file}:hits:MAX",
			"AREA:max#" .. self.palette.HalfMagenta,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullMagenta .. ":Count ",
			"GPRINT:min:MIN:%4.1lf Min,",
			"GPRINT:avg:AVERAGE:%4.1lf Avg,",
			"GPRINT:max:MAX:%4.1lf Max,",
			"GPRINT:avg:LAST:%4.1lf Last\\l"
		},

		entropy = {
			"-v", "Bits",
			"DEF:avg={file}:entropy:AVERAGE",
			"DEF:min={file}:entropy:MIN",
			"DEF:max={file}:entropy:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Bits",
			"GPRINT:min:MIN:%4.0lfbit Min,",
			"GPRINT:avg:AVERAGE:%4.0lfbit Avg,",
			"GPRINT:max:MAX:%4.0lfbit Max,",
			"GPRINT:avg:LAST:%4.0lfbit Last\\l"
		},

		fanspeed = {
			"-v", "RPM",
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfMagenta,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullMagenta .. ":RPM",
			"GPRINT:min:MIN:%4.1lf Min,",
			"GPRINT:avg:AVERAGE:%4.1lf Avg,",
			"GPRINT:max:MAX:%4.1lf Max,",
			"GPRINT:avg:LAST:%4.1lf Last\\l"
		},

		frequency = {
			"-v", "Hertz",
			"DEF:avg={file}:frequency:AVERAGE",
			"DEF:min={file}:frequency:MIN",
			"DEF:max={file}:frequency:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Frequency [Hz]",
			"GPRINT:min:MIN:%4.1lf Min,",
			"GPRINT:avg:AVERAGE:%4.1lf Avg,",
			"GPRINT:max:MAX:%4.1lf Max,",
			"GPRINT:avg:LAST:%4.1lf Last\\l"
		},

		frequency_offset = {
			"DEF:ppm_avg={file}:ppm:AVERAGE",
			"DEF:ppm_min={file}:ppm:MIN",
			"DEF:ppm_max={file}:ppm:MAX",
			"AREA:ppm_max#" .. self.palette.HalfBlue,
			"AREA:ppm_min#" .. self.palette.Canvas,
			"LINE1:ppm_avg#" .. self.palette.FullBlue .. ":{inst}",
			"GPRINT:ppm_min:MIN:%5.2lf Min,",
			"GPRINT:ppm_avg:AVERAGE:%5.2lf Avg,",
			"GPRINT:ppm_max:MAX:%5.2lf Max,",
			"GPRINT:ppm_avg:LAST:%5.2lf Last\\l"
		},

		gauge = {
			"-v", "Exec value",
			"DEF:temp_avg={file}:value:AVERAGE",
			"DEF:temp_min={file}:value:MIN",
			"DEF:temp_max={file}:value:MAX",
			"AREA:temp_max#" .. self.palette.HalfBlue,
			"AREA:temp_min#" .. self.palette.Canvas,
			"LINE1:temp_avg#" .. self.palette.FullBlue .. ":Exec value",
			"GPRINT:temp_min:MIN:%6.2lf Min,",
			"GPRINT:temp_avg:AVERAGE:%6.2lf Avg,",
			"GPRINT:temp_max:MAX:%6.2lf Max,",
			"GPRINT:temp_avg:LAST:%6.2lf Last\\l"
		},

		hddtemp = {
			"DEF:temp_avg={file}:value:AVERAGE",
			"DEF:temp_min={file}:value:MIN",
			"DEF:temp_max={file}:value:MAX",
			"AREA:temp_max#" .. self.palette.HalfRed,
			"AREA:temp_min#" .. self.palette.Canvas,
			"LINE1:temp_avg#" .. self.palette.FullRed .. ":Temperature",
			"GPRINT:temp_min:MIN:%4.1lf Min,",
			"GPRINT:temp_avg:AVERAGE:%4.1lf Avg,",
			"GPRINT:temp_max:MAX:%4.1lf Max,",
			"GPRINT:temp_avg:LAST:%4.1lf Last\\l"
		},

		humidity = {
			"-v", "Percent",
			"DEF:temp_avg={file}:value:AVERAGE",
			"DEF:temp_min={file}:value:MIN",
			"DEF:temp_max={file}:value:MAX",
			"AREA:temp_max#" .. self.palette.HalfGreen,
			"AREA:temp_min#" .. self.palette.Canvas,
			"LINE1:temp_avg#" .. self.palette.FullGreen .. ":Temperature",
			"GPRINT:temp_min:MIN:%4.1lf%% Min,",
			"GPRINT:temp_avg:AVERAGE:%4.1lf%% Avg,",
			"GPRINT:temp_max:MAX:%4.1lf%% Max,",
			"GPRINT:temp_avg:LAST:%4.1lf%% Last\\l"
		},

		load = {
			"-v", "System load",
			"DEF:s_avg={file}:shortterm:AVERAGE",
			"DEF:s_min={file}:shortterm:MIN",
			"DEF:s_max={file}:shortterm:MAX",
			"DEF:m_avg={file}:midterm:AVERAGE",
			"DEF:m_min={file}:midterm:MIN",
			"DEF:m_max={file}:midterm:MAX",
			"DEF:l_avg={file}:longterm:AVERAGE",
			"DEF:l_min={file}:longterm:MIN",
			"DEF:l_max={file}:longterm:MAX",
			"AREA:s_max#" .. self.palette.HalfGreen,
			"AREA:s_min#" .. self.palette.Canvas,
			"LINE1:s_avg#" .. self.palette.FullGreen .. ": 1m average",
			"GPRINT:s_min:MIN:%4.2lf Min,",
			"GPRINT:s_avg:AVERAGE:%4.2lf Avg,",
			"GPRINT:s_max:MAX:%4.2lf Max,",
			"GPRINT:s_avg:LAST:%4.2lf Last\n",
			"LINE1:m_avg#" .. self.palette.FullBlue .. ": 5m average",
			"GPRINT:m_min:MIN:%4.2lf Min,",
			"GPRINT:m_avg:AVERAGE:%4.2lf Avg,",
			"GPRINT:m_max:MAX:%4.2lf Max,",
			"GPRINT:m_avg:LAST:%4.2lf Last\n",
			"LINE1:l_avg#" .. self.palette.FullRed .. ":15m average",
			"GPRINT:l_min:MIN:%4.2lf Min,",
			"GPRINT:l_avg:AVERAGE:%4.2lf Avg,",
			"GPRINT:l_max:MAX:%4.2lf Max,",
			"GPRINT:l_avg:LAST:%4.2lf Last\\l"
		},

		load_percent = {
			"DEF:avg={file}:percent:AVERAGE",
			"DEF:min={file}:percent:MIN",
			"DEF:max={file}:percent:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Load",
			"GPRINT:min:MIN:%5.1lf%s%% Min,",
			"GPRINT:avg:AVERAGE:%5.1lf%s%% Avg,",
			"GPRINT:max:MAX:%5.1lf%s%% Max,",
			"GPRINT:avg:LAST:%5.1lf%s%% Last\\l"
		},

		mails = {
			"DEF:rawgood={file}:good:AVERAGE",
			"DEF:rawspam={file}:spam:AVERAGE",
			"CDEF:good=rawgood,UN,0,rawgood,IF",
			"CDEF:spam=rawspam,UN,0,rawspam,IF",
			"CDEF:negspam=spam,-1,*",
			"AREA:good#" .. self.palette.HalfGreen,
			"LINE1:good#" .. self.palette.FullGreen .. ":Good mails",
			"GPRINT:good:AVERAGE:%4.1lf Avg,",
			"GPRINT:good:MAX:%4.1lf Max,",
			"GPRINT:good:LAST:%4.1lf Last\n",
			"AREA:negspam#" .. self.palette.HalfRed,
			"LINE1:negspam#" .. self.palette.FullRed .. ":Spam mails",
			"GPRINT:spam:AVERAGE:%4.1lf Avg,",
			"GPRINT:spam:MAX:%4.1lf Max,",
			"GPRINT:spam:LAST:%4.1lf Last\\l",
			"HRULE:0#000000"
		},

		memory = {
			"-b", "1024", "-v", "Bytes",
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Memory",
			"GPRINT:min:MIN:%5.1lf%sbyte Min,",
			"GPRINT:avg:AVERAGE:%5.1lf%sbyte Avg,",
			"GPRINT:max:MAX:%5.1lf%sbyte Max,",
			"GPRINT:avg:LAST:%5.1lf%sbyte Last\\l"
		},

		old_memory = {
			"DEF:used_avg={file}:used:AVERAGE",
			"DEF:free_avg={file}:free:AVERAGE",
			"DEF:buffers_avg={file}:buffers:AVERAGE",
			"DEF:cached_avg={file}:cached:AVERAGE",
			"DEF:used_min={file}:used:MIN",
			"DEF:free_min={file}:free:MIN",
			"DEF:buffers_min={file}:buffers:MIN",
			"DEF:cached_min={file}:cached:MIN",
			"DEF:used_max={file}:used:MAX",
			"DEF:free_max={file}:free:MAX",
			"DEF:buffers_max={file}:buffers:MAX",
			"DEF:cached_max={file}:cached:MAX",
			"CDEF:cached_avg_nn=cached_avg,UN,0,cached_avg,IF",
			"CDEF:buffers_avg_nn=buffers_avg,UN,0,buffers_avg,IF",
			"CDEF:free_cached_buffers_used=free_avg,cached_avg_nn,+,buffers_avg_nn,+,used_avg,+",
			"CDEF:cached_buffers_used=cached_avg,buffers_avg_nn,+,used_avg,+",
			"CDEF:buffers_used=buffers_avg,used_avg,+",
			"AREA:free_cached_buffers_used#" .. self.palette.HalfGreen,
			"AREA:cached_buffers_used#" .. self.palette.HalfBlue,
			"AREA:buffers_used#" .. self.palette.HalfYellow,
			"AREA:used_avg#" .. self.palette.HalfRed,
			"LINE1:free_cached_buffers_used#" .. self.palette.FullGreen .. ":Free        ",
			"GPRINT:free_min:MIN:%5.1lf%s Min,",
			"GPRINT:free_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:free_max:MAX:%5.1lf%s Max,",
			"GPRINT:free_avg:LAST:%5.1lf%s Last\n",
			"LINE1:cached_buffers_used#" .. self.palette.FullBlue .. ":Page cache  ",
			"GPRINT:cached_min:MIN:%5.1lf%s Min,",
			"GPRINT:cached_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:cached_max:MAX:%5.1lf%s Max,",
			"GPRINT:cached_avg:LAST:%5.1lf%s Last\n",
			"LINE1:buffers_used#" .. self.palette.FullYellow .. ":Buffer cache",
			"GPRINT:buffers_min:MIN:%5.1lf%s Min,",
			"GPRINT:buffers_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:buffers_max:MAX:%5.1lf%s Max,",
			"GPRINT:buffers_avg:LAST:%5.1lf%s Last\n",
			"LINE1:used_avg#" .. self.palette.FullRed .. ":Used        ",
			"GPRINT:used_min:MIN:%5.1lf%s Min,",
			"GPRINT:used_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:used_max:MAX:%5.1lf%s Max,",
			"GPRINT:used_avg:LAST:%5.1lf%s Last\\l"
		},

		mysql_commands = {
			"-v", "Issues/s",
			"DEF:val_avg={file}:value:AVERAGE",
			"DEF:val_min={file}:value:MIN",
			"DEF:val_max={file}:value:MAX",
			"AREA:val_max#" .. self.palette.HalfBlue,
			"AREA:val_min#" .. self.palette.Canvas,
			"LINE1:val_avg#" .. self.palette.FullBlue .. ":Issues/s",
			"GPRINT:val_min:MIN:%5.2lf Min,",
			"GPRINT:val_avg:AVERAGE:%5.2lf Avg,",
			"GPRINT:val_max:MAX:%5.2lf Max,",
			"GPRINT:val_avg:LAST:%5.2lf Last\\l"
		},

		mysql_handler = {
			"-v", "Issues/s",
			"DEF:val_avg={file}:value:AVERAGE",
			"DEF:val_min={file}:value:MIN",
			"DEF:val_max={file}:value:MAX",
			"AREA:val_max#" .. self.palette.HalfBlue,
			"AREA:val_min#" .. self.palette.Canvas,
			"LINE1:val_avg#" .. self.palette.FullBlue .. ":Issues/s",
			"GPRINT:val_min:MIN:%5.2lf Min,",
			"GPRINT:val_avg:AVERAGE:%5.2lf Avg,",
			"GPRINT:val_max:MAX:%5.2lf Max,",
			"GPRINT:val_avg:LAST:%5.2lf Last\\l"
		},

		mysql_octets = {
			"-v", "Bits/s",
			"DEF:out_min={file}:tx:MIN",
			"DEF:out_avg={file}:tx:AVERAGE",
			"DEF:out_max={file}:tx:MAX",
			"DEF:inc_min={file}:rx:MIN",
			"DEF:inc_avg={file}:rx:AVERAGE",
			"DEF:inc_max={file}:rx:MAX",
			"CDEF:mytime=out_avg,TIME,TIME,IF",
			"CDEF:sample_len_raw=mytime,PREV(mytime),-",
			"CDEF:sample_len=sample_len_raw,UN,0,sample_len_raw,IF",
			"CDEF:out_avg_sample=out_avg,UN,0,out_avg,IF,sample_len,*",
			"CDEF:out_avg_sum=PREV,UN,0,PREV,IF,out_avg_sample,+",
			"CDEF:inc_avg_sample=inc_avg,UN,0,inc_avg,IF,sample_len,*",
			"CDEF:inc_avg_sum=PREV,UN,0,PREV,IF,inc_avg_sample,+",
			"CDEF:out_bit_min=out_min,8,*",
			"CDEF:out_bit_avg=out_avg,8,*",
			"CDEF:out_bit_max=out_max,8,*",
			"CDEF:inc_bit_min=inc_min,8,*",
			"CDEF:inc_bit_avg=inc_avg,8,*",
			"CDEF:inc_bit_max=inc_max,8,*",
			"CDEF:overlap=out_bit_avg,inc_bit_avg,GT,inc_bit_avg,out_bit_avg,IF",
			"AREA:out_bit_avg#" .. self.palette.HalfGreen,
			"AREA:inc_bit_avg#" .. self.palette.HalfBlue,
			"AREA:overlap#" .. self.palette.HalfBlueGreen,
			"LINE1:out_bit_avg#" .. self.palette.FullGreen .. ":Written",
			"GPRINT:out_bit_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:out_bit_max:MAX:%5.1lf%s Max,",
			"GPRINT:out_bit_avg:LAST:%5.1lf%s Last\\l",
			"GPRINT:out_avg_sum:LAST:(ca. %5.1lf%sB Total)",
			"LINE1:inc_bit_avg#" .. self.palette.FullBlue .. ":Read   ",
			"GPRINT:inc_bit_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:inc_bit_max:MAX:%5.1lf%s Max,",
			"GPRINT:inc_bit_avg:LAST:%5.1lf%s Last\\l",
			"GPRINT:inc_avg_sum:LAST:(ca. %5.1lf%sB Total)"
		},

		mysql_qcache = {
			"-v", "Queries/s",
			"DEF:hits_min={file}:hits:MIN",
			"DEF:hits_avg={file}:hits:AVERAGE",
			"DEF:hits_max={file}:hits:MAX",
			"DEF:inserts_min={file}:inserts:MIN",
			"DEF:inserts_avg={file}:inserts:AVERAGE",
			"DEF:inserts_max={file}:inserts:MAX",
			"DEF:not_cached_min={file}:not_cached:MIN",
			"DEF:not_cached_avg={file}:not_cached:AVERAGE",
			"DEF:not_cached_max={file}:not_cached:MAX",
			"DEF:lowmem_prunes_min={file}:lowmem_prunes:MIN",
			"DEF:lowmem_prunes_avg={file}:lowmem_prunes:AVERAGE",
			"DEF:lowmem_prunes_max={file}:lowmem_prunes:MAX",
			"DEF:queries_min={file}:queries_in_cache:MIN",
			"DEF:queries_avg={file}:queries_in_cache:AVERAGE",
			"DEF:queries_max={file}:queries_in_cache:MAX",
			"CDEF:unknown=queries_avg,UNKN,+",
			"CDEF:not_cached_agg=hits_avg,inserts_avg,+,not_cached_avg,+",
			"CDEF:inserts_agg=hits_avg,inserts_avg,+",
			"CDEF:hits_agg=hits_avg",
			"AREA:not_cached_agg#" .. self.palette.HalfYellow,
			"AREA:inserts_agg#" .. self.palette.HalfBlue,
			"AREA:hits_agg#" .. self.palette.HalfGreen,
			"LINE1:not_cached_agg#" .. self.palette.FullYellow .. ":Not Cached      ",
			"GPRINT:not_cached_min:MIN:%5.2lf Min,",
			"GPRINT:not_cached_avg:AVERAGE:%5.2lf Avg,",
			"GPRINT:not_cached_max:MAX:%5.2lf Max,",
			"GPRINT:not_cached_avg:LAST:%5.2lf Last\\l",
			"LINE1:inserts_agg#" .. self.palette.FullBlue .. ":Inserts         ",
			"GPRINT:inserts_min:MIN:%5.2lf Min,",
			"GPRINT:inserts_avg:AVERAGE:%5.2lf Avg,",
			"GPRINT:inserts_max:MAX:%5.2lf Max,",
			"GPRINT:inserts_avg:LAST:%5.2lf Last\\l",
			"LINE1:hits_agg#" .. self.palette.FullGreen .. ":Hits            ",
			"GPRINT:hits_min:MIN:%5.2lf Min,",
			"GPRINT:hits_avg:AVERAGE:%5.2lf Avg,",
			"GPRINT:hits_max:MAX:%5.2lf Max,",
			"GPRINT:hits_avg:LAST:%5.2lf Last\\l",
			"LINE1:lowmem_prunes_avg#" .. self.palette.FullRed .. ":Lowmem Prunes   ",
			"GPRINT:lowmem_prunes_min:MIN:%5.2lf Min,",
			"GPRINT:lowmem_prunes_avg:AVERAGE:%5.2lf Avg,",
			"GPRINT:lowmem_prunes_max:MAX:%5.2lf Max,",
			"GPRINT:lowmem_prunes_avg:LAST:%5.2lf Last\\l",
			"LINE1:unknown#" .. self.palette.Canvas .. ":Queries in cache",
			"GPRINT:queries_min:MIN:%5.0lf Min,",
			"GPRINT:queries_avg:AVERAGE:%5.0lf Avg,",
			"GPRINT:queries_max:MAX:%5.0lf Max,",
			"GPRINT:queries_avg:LAST:%5.0lf Last\\l"
		},

		mysql_threads = {
			"-v", "Threads",
			"DEF:running_min={file}:running:MIN",
			"DEF:running_avg={file}:running:AVERAGE",
			"DEF:running_max={file}:running:MAX",
			"DEF:connected_min={file}:connected:MIN",
			"DEF:connected_avg={file}:connected:AVERAGE",
			"DEF:connected_max={file}:connected:MAX",
			"DEF:cached_min={file}:cached:MIN",
			"DEF:cached_avg={file}:cached:AVERAGE",
			"DEF:cached_max={file}:cached:MAX",
			"DEF:created_min={file}:created:MIN",
			"DEF:created_avg={file}:created:AVERAGE",
			"DEF:created_max={file}:created:MAX",
			"CDEF:unknown=created_avg,UNKN,+",
			"CDEF:cached_agg=connected_avg,cached_avg,+",
			"AREA:cached_agg#" .. self.palette.HalfGreen,
			"AREA:connected_avg#" .. self.palette.HalfBlue,
			"AREA:running_avg#" .. self.palette.HalfRed,
			"LINE1:cached_agg#" .. self.palette.FullGreen .. ":Cached   ",
			"GPRINT:cached_min:MIN:%5.1lf Min,",
			"GPRINT:cached_avg:AVERAGE:%5.1lf Avg,",
			"GPRINT:cached_max:MAX:%5.1lf Max,",
			"GPRINT:cached_avg:LAST:%5.1lf Last\\l",
			"LINE1:connected_avg#" .. self.palette.FullBlue .. ":Connected",
			"GPRINT:connected_min:MIN:%5.1lf Min,",
			"GPRINT:connected_avg:AVERAGE:%5.1lf Avg,",
			"GPRINT:connected_max:MAX:%5.1lf Max,",
			"GPRINT:connected_avg:LAST:%5.1lf Last\\l",
			"LINE1:running_avg#" .. self.palette.FullRed .. ":Running  ",
			"GPRINT:running_min:MIN:%5.1lf Min,",
			"GPRINT:running_avg:AVERAGE:%5.1lf Avg,",
			"GPRINT:running_max:MAX:%5.1lf Max,",
			"GPRINT:running_avg:LAST:%5.1lf Last\\l",
			"LINE1:unknown#" .. self.palette.Canvas .. ":Created  ",
			"GPRINT:created_min:MIN:%5.0lf Min,",
			"GPRINT:created_avg:AVERAGE:%5.0lf Avg,",
			"GPRINT:created_max:MAX:%5.0lf Max,",
			"GPRINT:created_avg:LAST:%5.0lf Last\\l"
		},

		nfs_procedure = {
			"-v", "Issues/s",
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Issues/s",
			"GPRINT:min:MIN:%6.2lf Min,",
			"GPRINT:avg:AVERAGE:%6.2lf Avg,",
			"GPRINT:max:MAX:%6.2lf Max,",
			"GPRINT:avg:LAST:%6.2lf Last\\l"
		},

		nfs3_procedures = {
			"DEF:null_avg={file}:null:AVERAGE",
			"DEF:getattr_avg={file}:getattr:AVERAGE",
			"DEF:setattr_avg={file}:setattr:AVERAGE",
			"DEF:lookup_avg={file}:lookup:AVERAGE",
			"DEF:access_avg={file}:access:AVERAGE",
			"DEF:readlink_avg={file}:readlink:AVERAGE",
			"DEF:read_avg={file}:read:AVERAGE",
			"DEF:write_avg={file}:write:AVERAGE",
			"DEF:create_avg={file}:create:AVERAGE",
			"DEF:mkdir_avg={file}:mkdir:AVERAGE",
			"DEF:symlink_avg={file}:symlink:AVERAGE",
			"DEF:mknod_avg={file}:mknod:AVERAGE",
			"DEF:remove_avg={file}:remove:AVERAGE",
			"DEF:rmdir_avg={file}:rmdir:AVERAGE",
			"DEF:rename_avg={file}:rename:AVERAGE",
			"DEF:link_avg={file}:link:AVERAGE",
			"DEF:readdir_avg={file}:readdir:AVERAGE",
			"DEF:readdirplus_avg={file}:readdirplus:AVERAGE",
			"DEF:fsstat_avg={file}:fsstat:AVERAGE",
			"DEF:fsinfo_avg={file}:fsinfo:AVERAGE",
			"DEF:pathconf_avg={file}:pathconf:AVERAGE",
			"DEF:commit_avg={file}:commit:AVERAGE",
			"DEF:null_max={file}:null:MAX",
			"DEF:getattr_max={file}:getattr:MAX",
			"DEF:setattr_max={file}:setattr:MAX",
			"DEF:lookup_max={file}:lookup:MAX",
			"DEF:access_max={file}:access:MAX",
			"DEF:readlink_max={file}:readlink:MAX",
			"DEF:read_max={file}:read:MAX",
			"DEF:write_max={file}:write:MAX",
			"DEF:create_max={file}:create:MAX",
			"DEF:mkdir_max={file}:mkdir:MAX",
			"DEF:symlink_max={file}:symlink:MAX",
			"DEF:mknod_max={file}:mknod:MAX",
			"DEF:remove_max={file}:remove:MAX",
			"DEF:rmdir_max={file}:rmdir:MAX",
			"DEF:rename_max={file}:rename:MAX",
			"DEF:link_max={file}:link:MAX",
			"DEF:readdir_max={file}:readdir:MAX",
			"DEF:readdirplus_max={file}:readdirplus:MAX",
			"DEF:fsstat_max={file}:fsstat:MAX",
			"DEF:fsinfo_max={file}:fsinfo:MAX",
			"DEF:pathconf_max={file}:pathconf:MAX",
			"DEF:commit_max={file}:commit:MAX",
			"CDEF:other_avg=null_avg,readlink_avg,create_avg,mkdir_avg,symlink_avg,mknod_avg,remove_avg,rmdir_avg,rename_avg,link_avg,readdir_avg,readdirplus_avg,fsstat_avg,fsinfo_avg,pathconf_avg,+,+,+,+,+,+,+,+,+,+,+,+,+,+",
			"CDEF:other_max=null_max,readlink_max,create_max,mkdir_max,symlink_max,mknod_max,remove_max,rmdir_max,rename_max,link_max,readdir_max,readdirplus_max,fsstat_max,fsinfo_max,pathconf_max,+,+,+,+,+,+,+,+,+,+,+,+,+,+",
			"CDEF:stack_read=read_avg",
			"CDEF:stack_getattr=stack_read,getattr_avg,+",
			"CDEF:stack_access=stack_getattr,access_avg,+",
			"CDEF:stack_lookup=stack_access,lookup_avg,+",
			"CDEF:stack_write=stack_lookup,write_avg,+",
			"CDEF:stack_commit=stack_write,commit_avg,+",
			"CDEF:stack_setattr=stack_commit,setattr_avg,+",
			"CDEF:stack_other=stack_setattr,other_avg,+",
			"AREA:stack_other#" .. self.palette.HalfRed,
			"AREA:stack_setattr#" .. self.palette.HalfGreen,
			"AREA:stack_commit#" .. self.palette.HalfYellow,
			"AREA:stack_write#" .. self.palette.HalfGreen,
			"AREA:stack_lookup#" .. self.palette.HalfBlue,
			"AREA:stack_access#" .. self.palette.HalfMagenta,
			"AREA:stack_getattr#" .. self.palette.HalfCyan,
			"AREA:stack_read#" .. self.palette.HalfBlue,
			"LINE1:stack_other#" .. self.palette.FullRed .. ":Other  ",
			"GPRINT:other_max:MAX:%5.1lf Max,",
			"GPRINT:other_avg:AVERAGE:%5.1lf Avg,",
			"GPRINT:other_avg:LAST:%5.1lf Last\\l",
			"LINE1:stack_setattr#" .. self.palette.FullGreen .. ":setattr",
			"GPRINT:setattr_max:MAX:%5.1lf Max,",
			"GPRINT:setattr_avg:AVERAGE:%5.1lf Avg,",
			"GPRINT:setattr_avg:LAST:%5.1lf Last\\l",
			"LINE1:stack_commit#" .. self.palette.FullYellow .. ":commit ",
			"GPRINT:commit_max:MAX:%5.1lf Max,",
			"GPRINT:commit_avg:AVERAGE:%5.1lf Avg,",
			"GPRINT:commit_avg:LAST:%5.1lf Last\\l",
			"LINE1:stack_write#" .. self.palette.FullGreen .. ":write  ",
			"GPRINT:write_max:MAX:%5.1lf Max,",
			"GPRINT:write_avg:AVERAGE:%5.1lf Avg,",
			"GPRINT:write_avg:LAST:%5.1lf Last\\l",
			"LINE1:stack_lookup#" .. self.palette.FullBlue .. ":lookup ",
			"GPRINT:lookup_max:MAX:%5.1lf Max,",
			"GPRINT:lookup_avg:AVERAGE:%5.1lf Avg,",
			"GPRINT:lookup_avg:LAST:%5.1lf Last\\l",
			"LINE1:stack_access#" .. self.palette.FullMagenta .. ":access ",
			"GPRINT:access_max:MAX:%5.1lf Max,",
			"GPRINT:access_avg:AVERAGE:%5.1lf Avg,",
			"GPRINT:access_avg:LAST:%5.1lf Last\\l",
			"LINE1:stack_getattr#" .. self.palette.FullCyan .. ":getattr",
			"GPRINT:getattr_max:MAX:%5.1lf Max,",
			"GPRINT:getattr_avg:AVERAGE:%5.1lf Avg,",
			"GPRINT:getattr_avg:LAST:%5.1lf Last\\l",
			"LINE1:stack_read#" .. self.palette.FullBlue .. ":read   ",
			"GPRINT:read_max:MAX:%5.1lf Max,",
			"GPRINT:read_avg:AVERAGE:%5.1lf Avg,",
			"GPRINT:read_avg:LAST:%5.1lf Last\\l"
		},

		partition = {
			"DEF:rbyte_avg={file}:rbytes:AVERAGE",
			"DEF:rbyte_min={file}:rbytes:MIN",
			"DEF:rbyte_max={file}:rbytes:MAX",
			"DEF:wbyte_avg={file}:wbytes:AVERAGE",
			"DEF:wbyte_min={file}:wbytes:MIN",
			"DEF:wbyte_max={file}:wbytes:MAX",
			"CDEF:overlap=wbyte_avg,rbyte_avg,GT,rbyte_avg,wbyte_avg,IF",
			"AREA:wbyte_avg#" .. self.palette.HalfGreen,
			"AREA:rbyte_avg#" .. self.palette.HalfBlue,
			"AREA:overlap#" .. self.palette.HalfBlueGreen,
			"LINE1:wbyte_avg#" .. self.palette.FullGreen .. ":Write",
			"GPRINT:wbyte_min:MIN:%5.1lf%s Min,",
			"GPRINT:wbyte_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:wbyte_max:MAX:%5.1lf%s Max,",
			"GPRINT:wbyte_avg:LAST:%5.1lf%s Last\\l",
			"LINE1:rbyte_avg#" .. self.palette.FullBlue .. ":Read ",
			"GPRINT:rbyte_min:MIN:%5.1lf%s Min,",
			"GPRINT:rbyte_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:rbyte_max:MAX:%5.1lf%s Max,",
			"GPRINT:rbyte_avg:LAST:%5.1lf%s Last\\l"
		},

		percent = {
			"-v", "Percent",
			"DEF:avg={file}:percent:AVERAGE",
			"DEF:min={file}:percent:MIN",
			"DEF:max={file}:percent:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Percent",
			"GPRINT:min:MIN:%5.1lf%% Min,",
			"GPRINT:avg:AVERAGE:%5.1lf%% Avg,",
			"GPRINT:max:MAX:%5.1lf%% Max,",
			"GPRINT:avg:LAST:%5.1lf%% Last\\l"
		},

		power = {
			"-v", "Watt",
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Watt",
			"GPRINT:min:MIN:%5.1lf%sW Min,",
			"GPRINT:avg:AVERAGE:%5.1lf%sW Avg,",
			"GPRINT:max:MAX:%5.1lf%sW Max,",
			"GPRINT:avg:LAST:%5.1lf%sW Last\\l"
		},

		swap = {
			"-v", "Bytes", "-b", "1024",
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Bytes",
			"GPRINT:min:MIN:%6.2lf%sByte Min,",
			"GPRINT:avg:AVERAGE:%6.2lf%sByte Avg,",
			"GPRINT:max:MAX:%6.2lf%sByte Max,",
			"GPRINT:avg:LAST:%6.2lf%sByte Last\\l"
		},

		old_swap = {
			"DEF:used_avg={file}:used:AVERAGE",
			"DEF:used_min={file}:used:MIN",
			"DEF:used_max={file}:used:MAX",
			"DEF:free_avg={file}:free:AVERAGE",
			"DEF:free_min={file}:free:MIN",
			"DEF:free_max={file}:free:MAX",
			"DEF:cach_avg={file}:cached:AVERAGE",
			"DEF:cach_min={file}:cached:MIN",
			"DEF:cach_max={file}:cached:MAX",
			"DEF:resv_avg={file}:resv:AVERAGE",
			"DEF:resv_min={file}:resv:MIN",
			"DEF:resv_max={file}:resv:MAX",
			"CDEF:cach_avg_notnull=cach_avg,UN,0,cach_avg,IF",
			"CDEF:resv_avg_notnull=resv_avg,UN,0,resv_avg,IF",
			"CDEF:used_acc=used_avg",
			"CDEF:resv_acc=used_acc,resv_avg_notnull,+",
			"CDEF:cach_acc=resv_acc,cach_avg_notnull,+",
			"CDEF:free_acc=cach_acc,free_avg,+",
			"AREA:free_acc#" .. self.palette.HalfGreen,
			"AREA:cach_acc#" .. self.palette.HalfBlue,
			"AREA:resv_acc#" .. self.palette.HalfYellow,
			"AREA:used_acc#" .. self.palette.HalfRed,
			"LINE1:free_acc#" .. self.palette.FullGreen .. ":Free    ",
			"GPRINT:free_min:MIN:%5.1lf%s Min,",
			"GPRINT:free_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:free_max:MAX:%5.1lf%s Max,",
			"GPRINT:free_avg:LAST:%5.1lf%s Last\n",
			"LINE1:cach_acc#" .. self.palette.FullBlue .. ":Cached  ",
			"GPRINT:cach_min:MIN:%5.1lf%s Min,",
			"GPRINT:cach_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:cach_max:MAX:%5.1lf%s Max,",
			"GPRINT:cach_avg:LAST:%5.1lf%s Last\\l",
			"LINE1:resv_acc#" .. self.palette.FullYellow .. ":Reserved",
			"GPRINT:resv_min:MIN:%5.1lf%s Min,",
			"GPRINT:resv_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:resv_max:MAX:%5.1lf%s Max,",
			"GPRINT:resv_avg:LAST:%5.1lf%s Last\n",
			"LINE1:used_acc#" .. self.palette.FullRed .. ":Used    ",
			"GPRINT:used_min:MIN:%5.1lf%s Min,",
			"GPRINT:used_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:used_max:MAX:%5.1lf%s Max,",
			"GPRINT:used_avg:LAST:%5.1lf%s Last\\l"
		},

		tcp_connections = {
			"-v", "Connections",
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Connections",
			"GPRINT:min:MIN:%4.1lf Min,",
			"GPRINT:avg:AVERAGE:%4.1lf Avg,",
			"GPRINT:max:MAX:%4.1lf Max,",
			"GPRINT:avg:LAST:%4.1lf Last\\l"
		},

		temperature = {
			"-v", "Celsius",
			"DEF:temp_avg={file}:value:AVERAGE",
			"DEF:temp_min={file}:value:MIN",
			"DEF:temp_max={file}:value:MAX",
			"CDEF:average=temp_avg,0.2,*,PREV,UN,temp_avg,PREV,IF,0.8,*,+",
			"AREA:temp_max#" .. self.palette.HalfRed,
			"AREA:temp_min#" .. self.palette.Canvas,
			"LINE1:temp_avg#" .. self.palette.FullRed .. ":Temperature",
			"GPRINT:temp_min:MIN:%4.1lf Min,",
			"GPRINT:temp_avg:AVERAGE:%4.1lf Avg,",
			"GPRINT:temp_max:MAX:%4.1lf Max,",
			"GPRINT:temp_avg:LAST:%4.1lf Last\\l"
		},

		timeleft = {
			"-v", "Minutes",
			"DEF:avg={file}:timeleft:AVERAGE",
			"DEF:min={file}:timeleft:MIN",
			"DEF:max={file}:timeleft:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Time left [min]",
			"GPRINT:min:MIN:%5.1lf%s Min,",
			"GPRINT:avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:max:MAX:%5.1lf%s Max,",
			"GPRINT:avg:LAST:%5.1lf%s Last\\l"
		},

		time_offset = {
			"DEF:s_avg={file}:seconds:AVERAGE",
			"DEF:s_min={file}:seconds:MIN",
			"DEF:s_max={file}:seconds:MAX",
			"AREA:s_max#" .. self.palette.HalfBlue,
			"AREA:s_min#" .. self.palette.Canvas,
			"LINE1:s_avg#" .. self.palette.FullBlue .. ":{inst}",
			"GPRINT:s_min:MIN:%7.3lf%s Min,",
			"GPRINT:s_avg:AVERAGE:%7.3lf%s Avg,",
			"GPRINT:s_max:MAX:%7.3lf%s Max,",
			"GPRINT:s_avg:LAST:%7.3lf%s Last\\l"
		},

		cpufreq = {
			"DEF:cpufreq_avg={file}:value:AVERAGE",
			"DEF:cpufreq_min={file}:value:MIN",
			"DEF:cpufreq_max={file}:value:MAX",
			"AREA:cpufreq_max#" .. self.palette.HalfBlue,
			"AREA:cpufreq_min#" .. self.palette.Canvas,
			"LINE1:cpufreq_avg#" .. self.palette.FullBlue .. ":Frequency",
			"GPRINT:cpufreq_min:MIN:%5.1lf%s Min,",
			"GPRINT:cpufreq_avg:AVERAGE:%5.1lf%s Avg,",
			"GPRINT:cpufreq_max:MAX:%5.1lf%s Max,",
			"GPRINT:cpufreq_avg:LAST:%5.1lf%s Last\\l"
		},

		multimeter = {
			"DEF:multimeter_avg={file}:value:AVERAGE",
			"DEF:multimeter_min={file}:value:MIN",
			"DEF:multimeter_max={file}:value:MAX",
			"AREA:multimeter_max#" .. self.palette.HalfBlue,
			"AREA:multimeter_min#" .. self.palette.Canvas,
			"LINE1:multimeter_avg#" .. self.palette.FullBlue .. ":Multimeter",
			"GPRINT:multimeter_min:MIN:%4.1lf Min,",
			"GPRINT:multimeter_avg:AVERAGE:%4.1lf Average,",
			"GPRINT:multimeter_max:MAX:%4.1lf Max,",
			"GPRINT:multimeter_avg:LAST:%4.1lf Last\\l"
		},

		users = {
			"-v", "Users",
			"DEF:users_avg={file}:users:AVERAGE",
			"DEF:users_min={file}:users:MIN",
			"DEF:users_max={file}:users:MAX",
			"AREA:users_max#" .. self.palette.HalfBlue,
			"AREA:users_min#" .. self.palette.Canvas,
			"LINE1:users_avg#" .. self.palette.FullBlue .. ":Users",
			"GPRINT:users_min:MIN:%4.1lf Min,",
			"GPRINT:users_avg:AVERAGE:%4.1lf Average,",
			"GPRINT:users_max:MAX:%4.1lf Max,",
			"GPRINT:users_avg:LAST:%4.1lf Last\\l"
		},

		voltage = {
			"-v", "Voltage",
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Voltage",
			"GPRINT:min:MIN:%5.1lf%sV Min,",
			"GPRINT:avg:AVERAGE:%5.1lf%sV Avg,",
			"GPRINT:max:MAX:%5.1lf%sV Max,",
			"GPRINT:avg:LAST:%5.1lf%sV Last\\l"
		},

		vs_threads = {
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Threads",
			"GPRINT:min:MIN:%5.1lf Min,",
			"GPRINT:avg:AVERAGE:%5.1lf Avg.,",
			"GPRINT:max:MAX:%5.1lf Max,",
			"GPRINT:avg:LAST:%5.1lf Last\\l",
		},

		vs_memory = {
			"-b", "1024", "-v", "Bytes",
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":",
			"GPRINT:min:MIN:%5.1lf%sbytes Min,",
			"GPRINT:avg:AVERAGE:%5.1lf%sbytes Avg.,",
			"GPRINT:max:MAX:%5.1lf%sbytes Max,",
			"GPRINT:avg:LAST:%5.1lf%sbytes Last\\l",
		},

		vs_processes = {
			"DEF:avg={file}:value:AVERAGE",
			"DEF:min={file}:value:MIN",
			"DEF:max={file}:value:MAX",
			"AREA:max#" .. self.palette.HalfBlue,
			"AREA:min#" .. self.palette.Canvas,
			"LINE1:avg#" .. self.palette.FullBlue .. ":Processes",
			"GPRINT:min:MIN:%5.1lf Min,",
			"GPRINT:avg:AVERAGE:%5.1lf Avg.,",
			"GPRINT:max:MAX:%5.1lf Max,",
			"GPRINT:avg:LAST:%5.1lf Last\\l",
		},
	}
end

